1. Technical Field
The present invention generally relates to computer systems, specifically to a method of accessing information that is retrieved across a network, such as the Internet, and more particularly to a method of improving the performance of browsing software in following a chain of links to a destination document, such as hypertext links for visiting pages on the World Wide Web.
2. Description of Related Art
A generalized client-server computing network 2 is shown in FIG. 1. Network 2 has several nodes or servers 4, 6, 8 and 10 which are interconnected, either directly to each other or indirectly through one of the other servers. Each server is essentially a stand-alone computer system (having one or more processors, memory devices, and communications devices), but has been adapted (programmed) for one primary purpose, that of providing information to individual users at another set of nodes, or workstation clients 12. A client is a member of a class or group of computers or computer systems that uses the services of another class or group to which it is not related. Clients 12 can also be stand-alone computer systems (like personal computers, or PCs), or xe2x80x9cdumberxe2x80x9d systems adapted for limited use with network 2 (like network computers, or NCs). A single, physical computer can act as both a server and a client, although this implementation occurs infrequently.
The information provided by a server can be in the form of programs which run locally on a given client 12, or in the form of data such as files that are used by other programs. Users can also communicate with each other in real-time as well as by delayed file delivery, i.e., users connected to the same server can all communicate with each other without the need for the network 2, and users at different servers, such as servers 4 and 6, can communicate with each other via network 2. The network can be local in nature, or can be further connected to other systems (not shown) as indicated with servers 8 and 10.
The construction of network 2 is also generally applicable to the Internet. In the context of a computer network such as the Internet, a client is a process (i.e., a program or task) that requests a service which is provided by another program. The client process uses the requested service without having to xe2x80x9cknowxe2x80x9d any working details about the other program or the service itself. Based upon requests by the user, a server presents filtered electronic information to the user as server responses to the client process.
Conventional protocols and services have been established for the Internet which allow the transfer of various types of information, including electronic mail via simple mail transfer protocol (SMTP), basic file transfers via FTP (file transfer protocol), remote computing via Telnet, xe2x80x9cgopherxe2x80x9d searching, Usenet newsgroups, and hypertext file delivery and multimedia streaming via the World Wide Web (WWW). A given server can be dedicated to performing one of these operations, or running multiple services. Internet services are typically accessed by specifying a unique address, or universal resource locator (URL). The URL has two basic components, the protocol to be used, and the object pathname. For example, the URL of the home page for the United States Patent and Trademark Office specifies a hypertext transfer protocol (xe2x80x9chttpxe2x80x9d) and a pathname of the server. The server name is associated with a unique numeric value (a TCP/IP address, or xe2x80x9cdomainxe2x80x9d).
The present invention relates to the presentation of computer files that are distributed on a network like the Internet, but is particularly applicable to the WWW, which provides files that are conveniently linked for user access. For example, as illustrated in FIG. 2, a group 14 of files or pages 16a-16h are interrelated by providing hypertext links in each of the files (group 14 may thus be considered a typical xe2x80x9cweb sitexe2x80x9d). A hypertext link is an image or text that is viewable on the workstation""s display 18, which can be selected by the user (e.g., using a pointing device or xe2x80x9cmousexe2x80x9d) and which then automatically instructs client workstation 12 to request another page associated with that particular hypertext link (i.e., issue another URL). A hypertext link may appear as a picture, or as a word or sentence, possibly underlined or otherwise accentuated to indicate that it is a link and not just normal, informative text.
A WWW page may have text, graphic (still) images, and even multimedia objects such as sound recordings or moving video clips. A hypertext page, if more than just text, is usually constructed by loading several separate files, e.g., the hypertext file xe2x80x9cmain.htmlxe2x80x9d might include a reference to a graphic image file xe2x80x9cpicture.gifxe2x80x9d or to a sound file xe2x80x9cbeep.wavxe2x80x9d. When a client workstation 12 sends a request to a server for a page, such as page 16a, the server first transmits (at least partially) the main hypertext file associated with the page, and then loads, either sequentially or simultaneously, the other files associated with the page. A given file may be transmitted as several separate pieces via TCP/IP protocol. The constructed page is then displayed on the workstation monitor 18 as shown in FIG. 2. A page may be xe2x80x9clargerxe2x80x9d than the physical size of the monitor screen (i.e., larger than the software-programmed xe2x80x9cwindowxe2x80x9d provided for viewing the page), and techniques such as scroll bars are used by the viewing software (the web browser) to view different portions of the page. Different elements of the page (e.g., picture files) may be cached within the client workstation, that is, local copies kept, to simplify reloading of those elements if the browser retrieves a page that has been previously visited.
Web pages use field-based languages such as the hypertext markup language (HTML). This language provides a protocol for transmitting formatted information and control codes used to construct the xe2x80x9ccompletexe2x80x9d page that is ultimately displayed by the browser. Different fields within the main HTML file are defined to store the formatted information and control code parameters, using tags. Tags not only mark elements, such as text and graphics, but can also be used to construct graphical user interfaces within the web page (such as buttons that are xe2x80x9cdepressedxe2x80x9d by selecting them using the graphical pointing device). In HTML, a tag is a pair of angle brackets ( less than   greater than ) that contain one or more letters and numbers between the angle brackets. One pair of angle brackets is often placed before an element, and another pair placed after, to indicate where the element begins and ends. For example, the language xe2x80x9c less than B greater than TODAY ONLY less than  B greater than xe2x80x9d uses the xe2x80x9cBxe2x80x9d tag to provide a boldface formatting code for the words xe2x80x9cTODAY ONLY.xe2x80x9d Tags may also be used to label a designated area of the page while a page element (such as a picture) is being downloaded and constructed within that area.
As mentioned above, some HTML pages include references to other HTML pages by using a special HTML tag referred to as an anchor tag or link. Hypertext links provide a convenient method for reaching additional informational material. As illustrated in FIG. 2, a series of links can form a chain of pages, such as that formed by pages 16a, 16b, 16c, and 16d. 
Oftentimes a user must traverse a relatively large number of pages in such a chain in order to retrieve a desired page. This procedure can take a long time, particularly if the computer or server is operating at a slower speed, or if the telecommunications lines are congested. One method of avoiding this problem is to use an electronic xe2x80x9cbookmarkxe2x80x9d provided by the web browser, which records the network address of a desired page. In this manner, the user can select the address and proceed directly to that page without having to navigate through the path of hypertext links. Other problems arise, however, when attempting to use bookmarks. As more sites are visited, bookmark lists quickly become cluttered and more difficult to use. In the situation wherein there are several pages related to a main (xe2x80x9chomexe2x80x9d) page of a web site, many users still prefer to bookmark the home page and then branch out from there along the various link chains to find the pages.
It is also effectively impossible to bookmark some sites, such as those which use java applets to navigate through a site""s pages (java is an object-oriented programming language, and is used to program small applications, or applets, for web pages in order to enhance their presentation). These sites actually force the user to always start at the home page, which may be desired by the site owner for various reasons, including legal notices, security, or marketing. The java applets then load requested pages without providing a different (unique) URL to the browser on which to base a bookmark for a page beyond the primary/home page.
In these various situations where the desired page is to be found via a chain of several links, the user must wait an inordinate amount of time for each hypertext page to download, before the next link in the chain can be selected. Some users will attempt to utilize this time more efficiently by opening up multiple browser windows, to simultaneously process more than one page request, but oftentimes all of the browser windows are locked or suspended while one page is waiting for download completion. It would, therefore, be desirable to provide a method of allowing a user to more quickly navigate through a chain of electronic document links, such as hypertext links for pages of the World Wide Web. It would be further advantageous if a user could select the links in a xe2x80x9ctype-aheadxe2x80x9d mode, that is, in advance of the browser even loading the page containing the link.
It is therefore one object of the present invention to provide an improved method of accessing information on a computer system.
It is another object of the present invention to provide such a method which allows a user to quickly navigate through a chain of electronic document links, such as hypertext links.
It is yet another object of the present invention to provide such a method in which the user does not need to wait for an electronic document to download prior to selecting a link that is contained in the document.
The foregoing objects are achieved in a method of accessing electronic documents, generally comprising the steps of storing, in a computer system, link information regarding one or more document links embedded in an electronic document, selecting the electronic document for retrieval by the computer system, and displaying the link information on a display screen of the computer system, prior to actually downloading the electronic document. The stored information is recorded at an earlier time when the electronic document had previously been loaded into the document viewer (e.g., web browser). In this manner, the link information can be displayed concurrently with the issuance of a request for the electronic document, so the user can see the link information as the document is downloading, and can further select a link contained within the displayed link information, prior to said downloading. The link information which is to be stored may include a universal resource locator (URL) address associated with one of the document links embedded in the electronic document, or a java applet identifier associated with one of the document links. Additional information, such as an associated link label, may also be recorded. In particular, the document layout location of each link can be stored, so that the links are positioned within the document viewer at locations that correspond to the links in the actual electronic document. The link information can be updated if it has changed, after downloading the current version of the document.
The above as well as additional objectives, features, and advantages of the present invention will become apparent in the following detailed written description.